Software Development
Introduction to Scala
Scala Expressions and Parallel Computation
Scala Functional Programming and Collections
Scala Introduction
Scala Pattern Matching, Interoperability, and Concurrency
Scala Tooling

Scala Expressions and Parallel Computation

Course Number:
sd_scal_a05_it_enus
Lesson Objectives

Scala Expressions and Parallel Computation

  • start the course.
  • explore how to work with Scala streams
  • use lazy evaluation in Scala
  • use the basic Scala "for" expression
  • use startsWith, endsWith, and indexOf inside a Scala "for" expression
  • use the Scala "for" expression with various collections
  • utilize the Scala map method
  • utilize the Scala flatMap method
  • utilize the Scala withFilter method
  • utilize the Scala fold method
  • utilize the Scala reduce method
  • perform a parallel computation in Scala
  • carry out a parallel sort in Scala
  • explore the use of parallel collections in Scala
  • work with parallel programming in Scala
  • utilize Scala.rx for FRP
  • apply a transform method over a Scala List with map and withFilter

Overview/Description
Scala mixes programming paradigms, and so presents a challenge to programmers coming from any other language. This course explores for expressions and parallel computation.

Target Audience
Programmers with some experience of programming in another language looking to get a start in Scala

Scala Functional Programming and Collections

Course Number:
sd_scal_a02_it_enus
Lesson Objectives

Scala Functional Programming and Collections

  • start the course
  • describe the key aspects of functional programming in Scala
  • demonstrate the use of expression-oriented programming in Scala
  • utilize pure functions in Scala
  • explore the use of literals and anonymous functions in Scala
  • demonstrate how functions can be used as variables and parameters in Scala
  • describe the use of closures
  • create and use partially applied functions
  • demonstrate how to curry a function
  • explore how to compose functions from other functions
  • describe how to best use tail-recursion
  • differentiate between call-by-name and call-by-value
  • provide an overview of the collections framework in Scala
  • explore the key differences between mutable and immutable collections
  • use Sets in a Scala application
  • use Maps in a Scala application
  • use Sequences and perform sort operations in a Scala application
  • use Iterators in a Scala application
  • identify the key aspects of concrete immutable collection classes
  • identify the key aspects of concrete mutable collection classes
  • apply arrays in Scala
  • work with Strings in Scala code
  • demonstrate the proper way to test for equality in code
  • work with interpolation when using strings in Scala
  • compare Java and Scala collections
  • create a Scala application that utilizes functional programming to work with collections and Strings

Overview/Description
Scala mixes programming paradigms, and so presents a challenge to programmers coming from any other language. This course explores the use of functional programming in Scala as well as the Collections library and its uses.

Target Audience
Programmers with some experience of programming in another language looking to get a start in Scala

Scala Introduction

Course Number:
sd_scal_a01_it_enus
Lesson Objectives

Scala Introduction

  • start the course
  • describe the features of Scala
  • download and install the Scala binaries
  • run the Scala REPL and evaluate simple expressions
  • list the IDEs with Scala support and install the Scala plugin for Eclipse
  • use variables in Scala, and describe type inference
  • use value types in Scala, and describe the immutable property
  • declare and use a function in Scala
  • create a simple class and method in Scala
  • describe objects in Scala and how everything is an object
  • use Scala collections
  • use infix notation for built-in and custom methods in Scala
  • use operators and operator overloading in Scala
  • use Java types from Scala
  • describe the use of the unit type in Scala
  • use Scala if expressions and note that if is an expression and not a statement
  • use Scala match expressions
  • create constructors for classes in Scala
  • create fields in Scala classes, and describe behaviors of different field types
  • use automatic getters in Scala and override them
  • use automatic setters in Scala and override them
  • declare and use singleton objects in Scala
  • use companion objects in Scala
  • create and use a subclass in Scala
  • use traits in Scala
  • create a Scala application that contains a class, a subclass, and a companion object

Overview/Description
Scala mixes programming paradigms, and so presents a challenge to programmers coming from any other language. This course demystifies some of the techniques associated with Scala programming.

Target Audience
Programmers with some experience of programming in another language looking to get a start in Scala

Scala Pattern Matching, Interoperability, and Concurrency

Course Number:
sd_scal_a03_it_enus
Lesson Objectives

Scala Pattern Matching, Interoperability, and Concurrency

  • start the course
  • describe the key aspects of pattern matching in Scala
  • demonstrate how to apply pattern matching to lists in Scala
  • utilize pattern matching and case classes in Scala
  • explore the use of pattern matching with functions in Scala
  • compare OOP and functional programming
  • explore how to work with Java and Scala classes
  • create and use JavaBeans with Scala
  • demonstrate how to use Java interfaces and Scala traits
  • create static members with Scala objects
  • demonstrate how to deal with exceptions in Java and Scala
  • explore how to work with annotations in Java and Scala
  • compare Scala and Java concurrency
  • describe the use of asynchronous execution in Scala
  • specify the various ways to transform futures in Scala
  • troubleshoot and test with Scala futures
  • register and use Scala callbacks
  • implement Scala blocking with futures
  • demonstrate the use of promises in Scala concurrency
  • explore the utilities associated with Scala concurrency
  • create a Scala application that utilizes functional programming to work with collections and Strings

Overview/Description
Scala mixes programming paradigms, and so presents a challenge to programmers coming from any other language. This course explores the use of pattern matching, Java interoperability, and concurrency.

Target Audience
Programmers with some experience of programming in another language looking to get a start in Scala

Scala Tooling

Course Number:
sd_scal_a04_it_enus
Lesson Objectives

Scala Tooling

  • start the course
  • download and install sbt
  • use common options in a sbt project
  • manage dependencies in sbt
  • download a Scala project from Github and compile it with sbt
  • create a Scala application with Lightbend activator
  • configure Scala in emacs with ensime
  • import sbt projects into the Eclipse based Scala IDE
  • create a basic Scala.js application with Scala
  • including a Scala.js project in a web browser
  • manipulate the DOM with Scala.js
  • create a Scala sbt project that creates a basic Scala.js application

Overview/Description
Scala mixes programming paradigms, and so presents a challenge to programmers coming from any other language. This course explores sbt, dependencies, ensime, and scala.js

Target Audience
Programmers with some experience of programming in another language looking to get a start in Scala

Close Chat Live